Инструменты для рефакторинга основанных на таблице HTML-разметок к CSS?

Основное различие между вашим кодом и кодом Coq состоит в том, что код Coq должен возвращать натуральное число, а не печатать его. Это означает, что нам нужно отслеживать все, что печатало ваше решение, и возвращать результат сразу.

Поскольку печать S означает, что ответ является преемником того, что еще печатается, нам понадобится функция, которая может взять 2 ^ (n) -й преемник натурального числа. Есть разные способы сделать это, но я бы предложил рекурсию по n и отметить, что 2 ^ (n + 1) -й преемник x является 2 ^ (n) -ым преемником 2 ^ (n) -го преемника х.

Этого должно быть достаточно, чтобы получить то, что вы хотите.

unsigned int n = pow2(i);

for (size_t j = 0; j < n; j++)
{
    printf("%c", 'S');
}
rec_converter(str, ++i);

можно записать (в псевдококке) как

pow2_succ i (rec_converter str (S i)).

Однако следует отметить еще одну вещь: вы не сможете получить прямой доступ к i-му «символу» ввода, но это не должно быть проблемой. Когда вы пишете свою функцию как Fixpoint

Fixpoint rec_converter (n: bin) (i: nat): nat :=
match n with
| Z => 0
| A m => ...
| B m => ...
end.

, первый «символ» из m будет вторым «символом» исходного ввода. Так что вам просто нужно получить доступ к первому «персонажу», что и делает Fixpoint.

5
задан Brian Tompsett - 汤莱恩 13 September 2016 в 11:38
поделиться

7 ответов

Я соглашаюсь с TimB в, автоматизированные инструменты собираются испытать затруднения при выполнении этого, в особенности создании реляционных переходов, чтобы объединить и абстрагировать CSS самым эффективным способом.

При представлении табличных данных может быть разумно попытаться осуществить рефакторинг встроенный CSS к допускающим повторное использование классам.

Если у Вас есть много подобных таблиц со встроенными стилями, можно постепенно осуществлять рефакторинг CSS простым поиском и заменой. Это даст Вам много классов, которые соответствуют подмножеству подобных таблиц и большому количеству несколько подобных классов. Разбивание этого в расположение и презентацию было бы хорошим началом, затем переопределив их с определенными классами для каждой темы или семантически связанного объекта.

Я все еще рекомендовал бы запуститься с нуля, это, вероятно, будет более быстрым, и можно воссоздать только, что Вы должны представить страницу и можете снова использовать элементы или наборы элементов позднее.

Проведенное время также значительно окупится, если страница будет когда-либо необходима, чтобы быть измененной снова.

Но это нисколько не вероятно, это?:D

2
ответ дан 14 December 2019 в 09:05
поделиться

Я не знаю об определенных инструментах, только универсальные кофеина и Firebug, о котором любой делающий работу CSS должен знать.

Я думаю, что проблема достаточно трудна, что автоматизированные инструменты будут изо всех сил пытаться произвести хорошую, удобную в сопровождении разметку и CSS.

2
ответ дан 14 December 2019 в 09:05
поделиться

Кажется, как будто Вы ищете более автоматизированные средства рефакторинга старого основанного на таблице расположения к стандартам CSS. Однако я соглашаюсь с некоторыми из других комментариев "запуститься с нуля".

То, что это значит для Вас, - то, что необходимо попытаться восстановить (использование CSS) взгляд, который был достигнут с помощью HTML-таблицы. Если бы это понятие выходит из Вас, то я предложил бы гуглить для некоторых руководств по CSS новичка, возможно, даже некоторая фокусировка на обучении понятия Таблицы-> разметки CSS..

Другим инструментом для рассмотрения (который мог возможно помочь Вам еще больше) будет своего рода CSS "платформа". Я рекомендую Проекту CSS для этого, поскольку он помогает в создании grid/table-like разметок с минимальным усилием. Другой хороший является Yet-Another-Multicolumn-Layout, который имеет действительно аккуратного многостолбцового разработчика расположения.

2
ответ дан 14 December 2019 в 09:05
поделиться

Только бросьте его в dreamweaver или безотносительно предпочтительного инструмента и нарежьте его. Запишите HTML сначала в чисто семантическом стиле. например, очень общее расположение закончило бы тем, что было:

<body>
  <div id="header">
    <img id="logo"/>
    <h1 id="title">
      My Site
    </h1>
    <div id="subtitle">Playing with css</div>
  </div>
  <div id="content">
    <h2>Page 1</h2>
    <p>Blah blah blah..</p>
  </div>
  <div id="menu">
    <ul>
      <li><a>Some link</a></li>
      ...
    </ul>
  </div>
</body>

Сделайте HTML способом, который имеет смысл с Вашим содержанием. Это должно быть применимо, если у Вас нет CSS вообще. После этого добавьте в CSS, чтобы заставить его посмотреть способ, которым Вы хотите. С состоянием браузеров/CSS теперь, все еще, вероятно, необходимо добавить некоторых декораторов к HTML - например, перенести некоторые вещи в дополнительные отделения, только чтобы смочь получить содержание путем Вы хотите.

После того как Вы сделаны, хотя, у Вас будет очень перетекающий макет, который может быть изменен легко с CSS, и у Вас будет страница, которая доступна, и инвалидам и поисковым системам.

Действительно требуется довольно мало изучения, прежде чем Вы получите ловкость его, но это стоит. Сопротивляйтесь искушению сдаться и вернуться к основанным на таблице разметкам и просто проложить себе путь. Все может быть сделано с семантическим HTML и CSS.

1
ответ дан 14 December 2019 в 09:05
поделиться

Я занимаюсь подобной проблемой в данный момент, не совсем столь же грязный как чем это звучит, но продукт действительно плохих веб-форм asp.net, раздутого состояния отображения и глубоко вложенного управления сервером что результаты поиска формата от базы данных. Приведение к ~300 - 400K разметки для строк на 50 дБ - yeek.

Я не нашел автоматизированных инструментов, которые сделают половину пути разумное задание рефакторинга его.

Запуск с инструмента как Visual Studio, которую можно использовать для переформатирования кода к последовательному способу, помогает. Можно затем использовать комбинации regexs и прямоугольного выбора, чтобы начать избавляться от спама, и разделять назад избыточную разметку, начинать разбираться в том, что важно и что не, и затем начните определять, вручную, эффективный шаблон для представления информации.

Прием должен ворваться в управляемые блоки и создать его оттуда.

Если у Вас есть много фактических "табличных данных" к формату, и только однажды прочь, я нашел, что Excel, чтобы быть моим спасителем в нескольких случаях, вставить данные в лист и затем использовать комбинацию конкатенирует и заполняется для генерации разметки для табличных данных.

0
ответ дан 14 December 2019 в 09:05
поделиться

Запуск с нуля означает возвращаться к плате рабочего чертежа. Если необходимо осуществить рефакторинг такое чудовище, то для все время Вы потратите создание его лучше, Вы, возможно, также сделали полную модернизацию.

Если Вы хотите убежать от дублированных и расточительных тегов, необходимо выйти из Dreamewaver. Хороший текстовый редактор (jedit, emacs, энергия, затмение, и т.д.) является действительно всем, в чем Вы нуждаетесь. При настройке редактора правильно Вы даже не пропустите DreamWeaver. (Emacs с nXhtml и yasnippets является моим фаворитом.)

0
ответ дан 14 December 2019 в 09:05
поделиться

Вы клевещете на этот подход в своем вопросе, но я рекомендовал бы брать снимок экрана Вашей страницы в браузере, чей, представляя Вас как лучшее, объявите что быть Вашей ссылкой и начать пытаться воссоздать его. Это легче, чем Вы думаете. Я должен был взять страшные старые основанные на таблице разметки и превратить их в шаблоны CMS, сделанные с современными методами и дело не в этом плохо задание.

0
ответ дан 14 December 2019 в 09:05
поделиться