Использование rb-appscript для написания маркированного / нумерованного списка на страницах или textedit
Мне нужно использовать rb-appscript для создания нового документа Pages, который содержит маркированные и нумерованные списки. Глядя на это, я вижу, что у абзацев есть свойство list_style, но я недостаточно знаком с rb-appscript или applecript, чтобы понять, как установить это свойство. Я прочитал документацию, сгенерированную ASDictionary, но мои знания AppleScript, по-видимому, слишком малы, чтобы понять это.
Будем весьма благодарны за любую помощь в понимании того, как использовать информацию, представленную в документации, или в написании списка с использованием rb-appscript на страницах.
Изменить: я не застрял на страницах, textedit также является жизнеспособным вариантом.
2 ответа
Гь -appscript:
require 'rubygems'
require 'appscript'; include Appscript
lst=["a", "b"]
doc = app('Pages').documents[0]
doc.selection.get.paragraph_style.set("Body Bullet")
doc.selection.set(lst.join("\n"))
AppleScript:
set lst to {"a", "b"}
set text item delimiters to linefeed
tell application "Pages" to tell document 1
set paragraph style of (get selection) to "Body Bullet"
set selection to (lst as text)
end tell
Текущий урожай приложений Apple странный для сценария. Я не использую rb-appscript, но вот рабочий код для Applescript, который вы сможете изменить по вкусу и портированию:
property dummyList : {"Tyler Durden", "Marla Singer", "Robert Paulson"}
tell application "Pages"
set theDocument to make new document
tell theDocument
set bulletListStyle to ""
set lastListStyle to (count list styles)
repeat with thisListStyle from 1 to lastListStyle
set theListStyle to item thisListStyle of list styles
if name of theListStyle is "Bullet" then
set bulletListStyle to theListStyle
end if
end repeat
repeat with thisItem from 1 to (count dummyList)
set body text to body text & item thisItem of dummyList & return
end repeat
set paraCount to count paragraphs of theDocument
repeat with thisPara from 1 to paraCount
select paragraph thisPara
set theSelection to selection
set paragraph style of theSelection to "Body Bullet"
end repeat
end tell
end tell
По сути, это означает, что каждый элемент списка помещается в отдельный абзац (то есть для всех намерений и целей используется элемент списка: абзац с отступом и маркером), по очереди выбирается каждый параграф, затем применяется стиль абзаца списка. выбор. paragraph
Объект просто возвращает текст данного абзаца и по какой-то причине не содержит никакого состояния. Это не лучший способ справиться с этим сценарием, но, по крайней мере, все компоненты готовы предоставить вам то, что вам нужно.