[XSLT] выравнивание текста (output=text)
Думаю, что дешевле будет сделать это на обычном языке программирования.
ок, всё равно там ещё кучка работы для sed/awk апосля
А парсер случаем не MSXML?
<xsl:text>Заголовок=</xsl:text> <xsl:value-of select="title"/> <xsl:text> </xsl:text>не прокатит ли что-нибудь вроде
<xsl:text>Заголовок=</xsl:text> <xsl:value-of select="title"/> <xsl:text> </xsl:text>?
2penartur: разницы не усмотрел
не прокатит ли что-нибудь вродетогда уж нужно код символа табуляции вставить
и потом результат будет зависеть от просмотрщика полученного файла
тогда уж нужно код символа табуляции вставитьА табуляция - это разве не 7?
В общем, вставляешь, куда тебе надо, 
табы идут лесом.
в одном редакторе они так, в другом - сяк. в третьем вообще неравномерно.
только пробелами.
табы это атавизм.В хтмле таблицы (и прочие слои) - атавизм, они идут лесом, в одном браузере они так, в другом - сяк, в третьем вообще неравномерно.
табы идут лесом.
в одном редакторе они так, в другом - сяк. в третьем вообще неравномерно.
только пробелами.
Дизайн должен быть только пробелами!
А вообще, табы именно для таких вещей и предназначены.
И, если уж ты заговорил насчёт редакторов - что произойдёт, если я в _любом_ редакторе слово "автор" заменю на "аффтар" (или наоборот)? Если пользоваться пробелами - то вся такая "таблица" у тебя как раз и поедет.
Так что, имхо, тут надо поставить табы.
<msxsl:script language="VBScript" implements-prefix="fun"><![CDATA[
Dim strm
function formFixedString(val,length,filler,align)
al = align
l = Len(val)
if l<length then
if al="r" then
formFixedString=string(length-l,filler)+val
else
formFixedString=val+string(length-l,filler)
end if
else
formFixedString=Left(val,length)
end if
end function
function fixed(node,fld,length,filler,align)
set nd = node.nextNode
val = nd.selectSingleNode(fld).text
fixed = formFixedString(val,length,filler,align)
end function
]]></msxsl:script>
...
<xsl:template match='file'>
<xsl:value-of select="fun:fixed(.,'file_name',8,' ','l')"/>
<xsl:value-of select="fun:fixed(.,'file_type',3,' ','l')"/>
</xsl:template>
дружочек, если ты не заметил,
<xsl:output method="text"/>
дизайн в текстовом файле должен быть пробеламиДизайн в текстовом файле должен быть именно табами.
Пробелы в текстовом файле - то же самое, что и пробелы в каком-нибудь ворде, когда люди хотят поместить содержимое ячейки по её центру.
тогда рядом с каждым текстовым файлом нужно таскать табовую разметку, а то и не одну. и переключать её внутри файла. и будет тогда не текстовый файл, а файл текстового процессора. это бред
тогда рядом с каждым текстовым файлом нужно таскать табовую разметкуЧто-что?
Наверное, мы не совсем понимаем друг друга
[ mode]
Narrowness of experience leads to
narrowness of imagination
[/ mode]
таб это 8 пробелов в нормальном просмотрщике/редакторе текста
просто я вот встречал не нормальные просмотрщики, которые таб понимали и даже выравнивали, но итог получался кривой
поэтому и говорю: все зависит от того, где ты потом полученный файл будешь использовать
более того скажу.
есть среды, где первый табулятор сдвигает позицию на 8, воторой - на 16, а третий - на 40.
таб это 8 пробелов в нормальном просмотрщике/редакторе текстаТаб - это 8 пробелов в каком-то редакторе.
А по идее, он используется именно для такого выравнивания.
http://en.wikipedia.org/wiki/Tab_key
ЗЫ: Вообще, таб - это примерно то же, что и запятая в csv.
первый проход занимается перестроением данных - формированием данных для таблицы
второй проход занимается форматированием, причем т.к. данные уже подготовлены, то без проблемы можно расчитать ширину каждого столбца, сколько пробелов надо вставить и т.д.
"Narrowness of experience leads to narrowness of imagination."
> в нормальном просмотрщике/редакторе текста
tab-stop-list is a variable defined in `indent.el'.
...
Documentation:
*List of tab stop positions used by `tab-to-tab-stop'.
This should be a list of integers, ordered from smallest to largest.
You can customize this variable.
---
"Рот фронт, группенфюрер..."
Как быть с немоноширинными шрифтами?
---
...Я работаю антинаучным аферистом...
если немоноширинные - нужно таскать информацию о шрифтах. питч и кернинг например для каждого значка. а если шрифт проприетарный?
это метаинформация, которую нужно хранить _рядом_ с текстовым файлом.
опять, это будет файл не текстового редактора, но текстового процессора
Вот.
А если использовать HT, то tab-stop-list надо всего лишь
выставлять в em-ах или других единицах длины.
---
...Я работаю антинаучным аферистом...
аб это 8 пробелов в нормальном просмотрщике/редакторе текстая все текстовые редакторы, которые использую, настраиваю на табы в 4 пробела
в общем поддерживаю точку зрения, что форматирование в текстовом файле нужно делать пробелами
> в текстовом файле нужно делать пробелами
Тогда и к тебе относится вопрос про немоноширинные шрифты.
---
...Я работаю антинаучным аферистом...
что такое шрифты для текстового файла?
что такое шрифты для текстового файла?Тебе зачем текстовый файл нужен? Читать его, или плоожить на полку пылиться?
Таким образом, ответ на вопрос, что делать для немоноширинных шрифтов - поставить в программе просмотра моноширинный шрифт.
Таким образом, ответ на вопрос, что делать для немоноширинных шрифтов - поставить в программе просмотра моноширинный шрифт.То есть, когда тебе пользователь говорит "у меня в компьютере вообще нет моноширинных шрифтов", ты скажешь ему "иди на хуй, моя супер-прога работает только с моноширинными"?
В таком случае, надо генерить уже не текст, а картинку.
А если у него есть только Блокнот, который символ табуляции приравнивает к 8 пробелам, то этот же пользователь не сможет насладиться замечательным выравниванием, нарисованным в редакторе, где табуляция приравнивается к 4 пробелам.
Ибо у него все съедет хз куда.
Причем этот вариант куда вероятнее.
Вся фишка в том, что текстовый формат разрабатывался еще тогда, когда у видеокарт не было графического режима. И немоноширинных шрифтов не было.
Кто хочет наслаждаться красивыми шрифтами, воспользуется возможностями rtf, doc, html или любого другого украшателя текста.
Вот тут пожалуйста, рисуй табуляции как душе угодно.
А в старом добром тексте пробел куда удобнее.
нарисованным в редакторе, где табуляция приравнивается к 4 пробелам.Что за фигня?
В конце каждой ячейки надопоставить ровно один таб. Причём тут количество пробелов?
Иначе непонятно, по какой именно линии выравнивать.
Текстовый формат этого не позволяет, поэтому позиции расставляются то на каждом 4-м, то на каждом 8-м символе.
Тогда и к тебе относится вопрос про немоноширинные шрифты.Для plain text немоноширинные шрифты не использую.
То есть, документ делается для личного использования? И другие люди читать его не должны?
кстати проблема с табами в том, что придется еще рядом прикладывать инструкцию - какие именно табы надо настраивать, то что надо поставить моноширинный шрифт - в целом - понятно и без инструкции.
Кто другие? По умолчанию текстовые редакторы, которые мне попадались на глаза, используют "правильные" шрифты, и IE, кстати тоже. Если тебе захотелось настроить другие шрифты, это был твой выбор, не вижу проблемы.
> если ты можешь как-то задать позиции табуляции.
В случае plain text для этого предназначено такое старое
испытанное средство, как expand(1):
/* $NetBSD: expand.c,v 1.10 2005/03/09 02:02:07 christos Exp $ */
/*
* Copyright (c) 1980, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
Тебе не кажется, что двадцать семь лет, прошедших с 1980-го года,
для тебя прошли впустую?
> Текстовый формат этого не позволяет
Для тех, кто отстал на двадцать лет, напоминаю,
что разделитель полей по умолчанию --- HT.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
повторюсь, это метаинформация, которая к тексту имеет опосредованное отношение.
Я прекрасно всё помню.
> параметр -t для expand-а для каждого файла где-то хранить надо.
Это относится ко времени просмотра файла, когда и следует его
задавать или даже вычислять.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
yolki
Есть такой XSL:
результат:
хочется:
Тут наверное надо курить в сторону http://www.w3.org/1999/XSL/Format, но чё-то там не очень понятно..